import { getAncienLayer } from '@/api/home'

const polygonids: string[] = []

export const initAncient = async () => {
  await fdapi.camera.set(575356.531875, 3425641.500625, 27846.3075, -45.316978, -95.526321, 2)

  await addAncienLayer()
}

// 添加古镇图层
const addAncienLayer = async () => {
  const { data } = await getAncienLayer()

  const markerList: any = []
  const polygonList: any = []
  data.features.forEach((item: any) => {
    const id = item.properties.index
    const name = item.properties.name
    const pointCoord = [item.properties.x, item.properties.y]

    const parmas = {
      name,
      address: item.properties.address,
      tag: item.properties.tag,
      area: item.properties.area_km + ' km²',
      deepinfo: item.properties.deepinfo
    }
    console.log(`@path:孪创城市/html/ancient.html?parmas=${JSON.stringify(parmas)}`)

    const imaScale = 0.7
    const marker = {
      id: 'ancient_marker_' + id,
      groupId: 'ancient_marker',
      coordinate: pointCoord, //坐标位置
      coordinateType: 0, //默认0是投影坐标系，也可以设置为经纬度空间坐标系值为1
      anchors: [(-112 / 2) * imaScale, 112 * imaScale], //锚点，设置Marker的整体偏移，取值规则和imageSize设置的宽高有关，图片的左上角会对准标注点的坐标位置。示例设置规则：x=-imageSize.width/2，y=imageSize.height
      imagePath: '@path:孪创城市/古城.png', //显示图片路径
      imageSize: [112 * imaScale, 112 * imaScale], //图片的尺寸
      range: [1, 100000], //可视范围
      viewHeightRange: [1, 100000], // 可见高度范围
      fixedSize: true, //图片固定尺寸，取值范围：false 自适应，近大远小，true 固定尺寸，默认值：false

      text: name, //显示的文字
      useTextAnimation: true, //关闭文字展开动画效果 打开会影响效率
      textRange: [1, 100000], //文本可视范围[近裁距离, 远裁距离]
      textOffset: [-20, 2], // 文本偏移
      textBackgroundColor: [0, 0, 0, 0], //文本背景颜色
      fontSize: 12, //字体大小
      fontOutlineSize: 2, //字体轮廓线大小
      fontColor: '#efece9', //字体颜色
      fontOutlineColor: '#516252', //字体轮廓线颜色

      popupURL: `@path:孪创城市/html/ancient.html?parmas=${JSON.stringify(parmas)}&.html`, //弹窗HTML链接
      popupSize: [734 / 1.8, 556 / 1.8], //弹窗大小
      popupOffset: [0, 0], //弹窗偏移

      autoHidePopupWindow: true, //失去焦点后是否自动关闭弹出窗口
      autoHeight: true, // 自动判断下方是否有物体
      displayMode: 2, //智能显示模式  开发过程中请根据业务需求判断使用四种显示模式
      clusterByImage: true, // 聚合时是否根据图片路径分类，即当多个marker的imagePath路径参数相同时按路径对marker分类聚合
      priority: 0, //避让优先级
      occlusionCull: false //是否参与遮挡剔除
    }

    markerList.push(marker)

    const polygonCoords = item.geometry.coordinates
    polygonids.push('ancient_marker_low_' + id)
    polygonids.push('ancient_marker_height_' + id)
    const polygon_low = {
      id: 'ancient_marker_low_' + id,
      coordinates: polygonCoords,
      coordinateType: 0, //坐标系类型，取值范围：0为Projection类型，1为WGS84类型，2为火星坐标系(GCJ02)，3为百度坐标系(BD09)，默认值：0
      range: [0, 5000], //可视范围：[近裁距离, 远裁距离]，取值范围: [任意负值, 任意正值]
      color: [154 / 255, 245 / 255, 146 / 255, 0.3], //多边形的填充颜色
      intensity: 1, //亮度
      style: 10, //单色 请参照API开发文档选取枚举
      depthTest: false, //是否做深度检测 开启后会被地形高度遮挡
      priority: 1 //显示优先级 值越大显示越靠上
    }
    const polygon_height = {
      id: 'ancient_marker_height_' + id,
      coordinates: polygonCoords,
      coordinateType: 0, //坐标系类型，取值范围：0为Projection类型，1为WGS84类型，2为火星坐标系(GCJ02)，3为百度坐标系(BD09)，默认值：0
      range: [5000, 1000000], //可视范围：[近裁距离, 远裁距离]，取值范围: [任意负值, 任意正值]
      color: [154 / 255, 245 / 255, 146 / 255, 1], //多边形的填充颜色
      intensity: 10, //亮度
      style: 10, //单色 请参照API开发文档选取枚举
      depthTest: false, //是否做深度检测 开启后会被地形高度遮挡
      priority: 1 //显示优先级 值越大显示越靠上
    }
    polygonList.push(polygon_low)
    polygonList.push(polygon_height)
  })

  fdapi.marker.add(markerList)
  fdapi.polygon.add(polygonList)
}
export const exitAncient = async () => {
  fdapi.marker.deleteByGroupId('ancient_marker')
  fdapi.polygon.delete(polygonids)
}
